1. Field of the Invention
The present invention relates to storage systems. More particularly, the invention relates to a method and apparatus for managing storage and access of data that is mirrored or copied to multiple storage locations.
2. Description of the Related Art
The present invention is directed to a method and system for improving I/O response times for applications that require optimal response times for data access, such as applications directed to storing or retrieving on-demand video or audio. Applications that provide video streams (or audio streams) often store portions of the video data in many locations on many data storage devices. As used herein, the term xe2x80x9cdata storage devicexe2x80x9d refers to any device or apparatus utilizable for the storage of data, e.g., a disk drive. For explanatory purposes only and not as an intent to limit the scope of this invention, the term xe2x80x9cdisk drivexe2x80x9d will be used throughout this document instead of the term xe2x80x9cdata storage device.xe2x80x9d
To provide video on-demand at the proper display rate, the portions of stored video data are continually being retrieved and displayed at a viewing device. However, different disk drives often provide different momentary response times to I/O requests due to varying system and environmental factors such as disk drive load, number of other requests on I/O request queues, network traffic, and physical disk drive proximity. If the video data is stored on many storage devices, then it is possible for the video data to be delivered out of order if some of the disk drives have momentary response times that are slower (or faster) than other disk drives.
One solution to this problem is to issue an I/O command for a particular piece of video data only when the prior sequential piece of video data has been delivered. Alternatively, the system may buffer data so that even if the video stream arrives out of order, the video data is presented in order on the viewing device. The drawback to these solutions is that the delivered video stream is potentially stopped or constricted if any particular piece of video data has a relatively slow I/O response or delivery time. In other words, this method could produce an unacceptable display rate in the viewing device, resulting in a video stream that appears to have delayed or stopped motion on that display.
Another solution is to allow the video data to continue to stream even if the data arrives out of order, but to ignore any earlier pieces of data in the video sequence that arrive at the viewing device after a later piece of data in the video sequence. The drawback to this method is that gaps may appear in the video stream at the viewing device, resulting in a video stream having a jerky motion on the display.
Another solution is to store the video data (striped or unstriped) in an ordered manner on the disk drives. In this way, the chance of video data arriving out of order is reduced. One drawback to striping data in an ordered manner across disk drives is that it presents problems when new disk drives are added to the system. Adding new disk drives may require wholesale restriping of data across the new configuration of disk drives. Moreover, storing data in an ordered fashion may cause load balancing problems, since the data cannot be randomly scattered across the disk drives.
Thus, there is a need for a method and system for allowing optimal response times for access to data items stored in a storage system.
The invention encompasses a method and apparatus for managing storage and access of data to a storage system having a plurality of data storage devices.
One aspect of the invention is directed to reading a data item from a storage system with optimized response time, in which multiple copies of the data items are stored to the storage system. The invention discloses a method of submitting more I/O read requests for the data item than are actually required to service the I/O needs of the node making the requests.
Another aspect of the invention is directed to writing and updating a data item, whether mirrored or not, to a storage system. One feature of this aspect is the submission of more I/O write or update requests than are actually required to service the original I/O needs of the node making the requests.
Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims. Both the foregoing general description and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the invention.